/*
	从管道读

*/




#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <strings.h>
#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>


int main(int argc, char **argv)
{
	int fd;
	char buf[BUFSIZ];
	if (argc != 2) {
		printf("usage: %s fifofile\n", argv[0]);
		exit(1);
	}	
	//1.打开有名管道 (类似文件) 
	
	if ((fd  = open(argv[1], O_RDWR)) < 0) {
		perror("open");
		exit(1);
	}
	//2.进程2从有名管道读数据
	while (1) {
		bzero(buf, BUFSIZ);
		read(fd, buf, BUFSIZ); //管道空会阻塞
		printf("从管道读 %ld个字符: %s\n", strlen(buf), buf);
		if ((strncmp(buf, "quit", 4) == 0) && (strlen(buf) == 5)) break;
	}
	close(fd);
	return 0;

}


